package com.memoir.jpa.controller;

import com.memoir.jpa.model.TodoDto;
import com.memoir.jpa.service.TodoJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.List;

/**
 * @author ldm
 * @since 2017-10-22
 */
@RestController
@RequestMapping("/jpa")
public class TodoJpaController {
    //  T getOne(ID var1);

    //List<T> findAll();
    //List<T> findAll(Sort var1);
    //List<T> findAll(Iterable<ID> var1);

    //    <S extends T> S findOne(Example<S> var1);
    //    <S extends T> Iterable<S> findAll(Example<S> var1);
    //    <S extends T> Iterable<S> findAll(Example<S> var1, Sort var2);
    //    <S extends T> Page<S> findAll(Example<S> var1, Pageable var2);
    //    <S extends T> List<S> findAll(Example<S> var1);
    //    <S extends T> List<S> findAll(Example<S> var1, Sort var2);


    //  <S extends T> List<S> save(Iterable<S> var1);
    //  <S extends T> S saveAndFlush(S var1);
    //  void flush();


    //  void deleteInBatch(Iterable<T> var1);
    //  void deleteAllInBatch();

    //    <S extends T> long count(Example<S> var1);
    //    <S extends T> boolean exists(Example<S> var1);
    @Autowired
    private TodoJpaService todoJpaService;

    @RequestMapping(value = "/find",method = RequestMethod.GET)
    public List<TodoDto> findAll(){

        TodoDto todoDto = new TodoDto();
        todoDto.setTitle("西门庆");
        todoDto.setContent("a");

        return todoJpaService.findAllByExample(todoDto);
    }

    @RequestMapping(value = "/save",method = RequestMethod.POST)
    public TodoDto save(){

        TodoDto todoDto = new TodoDto();
        todoDto.setId(3);
        todoDto.setTitle("潘金莲");
        todoDto.setContent("武大郎和潘金莲大合唱");
        todoDto.setCompleted(true);
        todoDto.setCreateTime(new Date());

        return todoJpaService.save(todoDto);
    }
}
